#pragma once

enum GErrorCode
{
	CommonSuccess,
	CommonUnknownError,
	CommonTransError,
	CommonInternalError,
	CommonNoWarning,
	CommonNotFound,
	CommonNotImplemented,

	InvalidRequest,
	ParamInvalid,
	TargetInvalid,
	TargetOffline,
	TargetNotExist,
	ReplyIsExpired,
	DistanceTooFar,

	SessionKickNormal,
	SessionKickAccountRelogin,
	SessionKickNetPacketError,
	SessionKickInitDataError,
	SessionKickMapServerExit,
	SessionKickMigrate,
	SessionKickHacker,

	LOGIN_ERROR_GATE_SERVER_OFFLINE,
	LOGIN_ERROR_MAP_SERVER_OFFLINE,
	LOGIN_ERROR_CHARACTER_NOT_EXSIT,
	LOGIN_ERROR_CHARACTER_LOGINNING,
	LOGIN_ERROR_CHARACTER_ONLINE,
	LOGIN_ERROR_CHARACTER_OFFLINE,
	LOGIN_ERROR_CHARACTER_TIMEOUT,

	InstanceStartFailed,
	InstanceNotFound,
	InstanceIsFull,
	InstanceIsClosed,

	CharInvalid,
	CharOffline,
	CharNotExist,
	CharInMigration,
	CharIsUninitialized,
	CharNameAlreadyExist,
	CharNameInvalid,
	CharNameTooShort,
	CharNameTooLong,
	CharNameIllegality,
	CharNumFull,

	ErrItemStorageSlotNotEnough,
	ErrItemStorageSlotLackCount,
	ErrItemCountNotEnough,
	ErrItemCountLackCount,
	ErrItemNotExist,
	ErrItemSlotNotEmpty,
	ErrItemEquipSlotNotEmpty,

	ErrSpellInternalError,
	ErrSpellNotInWorld,
	ErrSpellNotExist,
	ErrSpellNotLearned,
	ErrSpellNotReady,
	ErrSpellInvalidCaster,
	ErrSpellInvalidTarget,
	ErrSpellInvalidDist,
	ErrSpellInvalidParam,
	ErrSpellInvalidPosition,
	ErrSpellNotEnoughLevel,
	ErrSpellNotEnoughHP,
	ErrSpellNotEnoughMP,
	ErrSpellLackMineMaterial,
	ErrSpellExclusiveMine,
	ErrSpellCantInteractive,
	ErrSpellOutOfControl,
	ErrSpellCooldown,
	ErrSpellCasting,

	ErrLevelNotEnough,
	ErrMoneyNotEnough,

	ErrMailExporting,
	ErrGuildCreating,

	ErrNotInTeam,
	ErrNotTeamLeader,
	ErrTargetTeamNotExist,
	ErrTargetAlreadyInTeam,
	ErrAlreadyInTeam,
	ErrAlreadyInTeamInviteList,
	ErrAlreadyInTeamApplyList,
	ErrTeamInviteExpired,
	ErrTeamApplyExpired,
	ErrTeamIsDisband,
	ErrTeamIsFull,

	ErrNotInGuild,
	ErrGuildMasterCantLeave,
	ErrTargetGuildNotExist,
	ErrGuildAuthorityFailed,
	ErrNotInSameGuild,
	ErrTargetNotInGuild,
	ErrTargetAlreadyInGuild,
	ErrAlreadyInGuild,
	ErrAlreadyInGuildInviteList,
	ErrAlreadyInGuildApplyList,
	ErrNotInGuildApplyList,
	ErrGuildInviteExpired,
	ErrGuildIsDisband,
	ErrGuildIsFull,

	ErrQuestOutOfTime,

	ErrShopItemSellOut,
	ErrShopOutOfTime,
};
